#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/wait.h>
#include<unistd.h>
#include <fcntl.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<arpa/inet.h>
#include<event2/event.h>
//需求使用fifo(命名管道)实现两个文件之间的通信
void read_cb(int fd,short what,void*arg){
    char buf[1024];
    int n=read(fd,buf,sizeof(buf));
    write(STDOUT_FILENO,buf,n);
    sleep(1);
}
int main(){
    unlink("FIFO");   
    mkfifo("FIFO",0664); //创建通信文件

    int fd=open("FIFO",O_RDONLY| O_NONBLOCK); //打开文件并且设置为非阻塞
    struct event_base*base;
    base=event_base_new();
    
    struct event*ev=NULL;//创建事件
    ev=event_new(base,fd,EV_READ | EV_PERSIST,read_cb,NULL);

    event_add(ev,NULL);  //添加到base上

    event_base_dispatch(base);   //启动循环

    //释放资源
    event_free(ev);
    event_base_free(base);
    close(fd);
    return 0;
}